package main

import (
	"log"
	"net"
	"net/rpc"
)

type Hello struct {
}

func (Hello) HelloWorld(request string, req *string) error {
	*req = "hello" + ":" + request
	return nil
}

func main() {
	// a := ""
	rpc.RegisterName("hello", new(Hello))
	listener, _ := net.Listen("tcp", ":1234")
	for {
		conn, err := listener.Accept()
		if err != nil {
			log.Fatal("Accept error:", err)
		}

		// 前面都是tcp的知识, 到这个RPC就接管了
		// 因此 你可以认为 rpc 帮我们封装消息到函数调用的这个逻辑,
		// 提升了工作效率, 逻辑比较简洁，可以看看他代码
		go rpc.ServeConn(conn)
	}
}
